The basic input/output system (“BIOS”) is the part of the system software of a computing device (e.g., computer, personal digital assistant, etc.) that controls the operations of a boot sequence and provides the lowest level interface to peripheral devices. A boot sequence is the operations the computing device performs when it is powered on, including initializing peripheral devices (e.g., monitor display, keyboard, etc.), performing diagnostic tests, and loading an operating system or an equivalent thereof.
Typically, a single processor, known as a bootstrap processor, is designated to perform all of the operations of the boot sequence regardless of the number of processors (logical or physical) in the computing device. In a multiprocessor system, the other processor(s) (i.e., other than the bootstrap processor) typically remain idle during the entire boot sequence.
Furthermore, the amount of time for the boot sequence to complete may vary based on the computing device. For example, a typical BIOS operation to detect an Integrated Drive Electronic (“IDE”) hard drive may be very time-consuming from time to time. This operation alone may take approximately thirty seconds to complete, which is a substantial amount of time when powering-up a computing device. In addition, each peripheral device is initiated in sequential order and one defective peripheral device driver may cause the entire boot sequence to fail.
Furthermore, the prior art boot environment presents significant challenges to innovation within the industry. Each new platform capability or hardware innovation requires firmware developers to craft increasingly complex solutions, and often requires operating system developers to make changes to their boot code before customers can benefit from the innovation. This can be a time-consuming process requiring a significant investment of resources.